Package io.github.koalaplot.core.xychart

Types

Link copied to clipboard
interface AxisModel<T>

An interface for classes representing a plot axis.

Link copied to clipboard
interface AxisState

Holds the offsets for major and minor ticks within an axis.

Link copied to clipboard
data class AxisStyle(    val color: Color = Color.Black,     val majorTickSize: Dp = 0.dp,     val minorTickSize: Dp = 0.dp,     val tickPosition: TickPosition = TickPosition.None,     val lineWidth: Dp = 1.dp)

Styling configuration for an Axis.

Link copied to clipboard
class CategoryAxisModel<T>(categories: List<T>, val minimumMajorTickSpacing: Dp = 50.dp) : AxisModel<T>

An axis that uses arbitrary category objects instead of numbers as its values. It is a discrete axis.

Link copied to clipboard
class LinearAxisModel(    range: ClosedFloatingPointRange<Float>,     zoomRangeLimit: Float = (range.endInclusive - range.start) * ZoomRangeLimitDefault,     minimumMajorTickIncrement: Float = (range.endInclusive - range.start) * MinimumMajorTickIncrementDefault,     val minimumMajorTickSpacing: Dp = 50.dp,     minorTickCount: Int = 4,     allowZooming: Boolean = true,     allowPanning: Boolean = true) : AxisModel<Float>

An AxisModel that uses Float values and is linear.

Link copied to clipboard
data class LineStyle(    val brush: Brush,     val strokeWidth: Dp = 0.dp,     val pathEffect: PathEffect? = null,     val alpha: Float = 1.0f,     val colorFilter: ColorFilter? = null,     val blendMode: BlendMode = DefaultBlendMode)

Provides styling for lines.

Link copied to clipboard
class LogAxisModel(range: ClosedRange<Int>, val minimumMajorTickSpacing: Dp = 50.dp) : AxisModel<Float>

A logarithmic axis.

Link copied to clipboard
enum TickPosition : Enum<TickPosition>

Specifies the position of axis ticks.

Link copied to clipboard
interface TickValues<T>

The major and minor tick values for an axis.

Link copied to clipboard
interface XYChartScope<X, Y> : HoverableElementAreaScope

A scope for XY plots providing axis and state context.

Functions

Link copied to clipboard
@JvmName(name = "autoScaleFloatRange")
fun List<Float>.autoScaleRange(): ClosedFloatingPointRange<Float>
@JvmName(name = "autoScaleIntRange")
fun List<Int>.autoScaleRange(): ClosedFloatingPointRange<Float>
Link copied to clipboard
fun rememberAxisStyle(    color: Color = KoalaPlotTheme.axis.color,     majorTickSize: Dp = KoalaPlotTheme.axis.majorTickSize,     minorTickSize: Dp = KoalaPlotTheme.axis.minorTickSize,     tickPosition: TickPosition = KoalaPlotTheme.axis.tickPosition,     lineWidth: Dp = KoalaPlotTheme.axis.lineThickness): AxisStyle

Creates and remembers an AxisStyle.

Link copied to clipboard
fun rememberLinearAxisModel(    range: ClosedFloatingPointRange<Float>,     zoomRangeLimit: Float = (range.endInclusive - range.start) * ZoomRangeLimitDefault,     minimumMajorTickIncrement: Float = (range.endInclusive - range.start) * MinimumMajorTickIncrementDefault,     minimumMajorTickSpacing: Dp = 50.dp,     minorTickCount: Int = 4,     allowZooming: Boolean = true,     allowPanning: Boolean = true): LinearAxisModel

Create and remember a LinearAxisModel.

Link copied to clipboard
fun <X, Y> XYChart(    xAxisModel: AxisModel<X>,     yAxisModel: AxisModel<Y>,     modifier: Modifier = Modifier,     xAxisStyle: AxisStyle = rememberAxisStyle(),     xAxisLabels: (X) -> String = { it.toString() },     xAxisTitle: String = "",     yAxisStyle: AxisStyle = rememberAxisStyle(),     yAxisLabels: (Y) -> String = { it.toString() },     yAxisTitle: String = "",     horizontalMajorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.majorGridlineStyle,     horizontalMinorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.minorGridlineStyle,     verticalMajorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.majorGridlineStyle,     verticalMinorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.minorGridlineStyle,     content: @Composable XYChartScope<X, Y>.() -> Unit)

An XYChart overload that takes Strings for axis labels and titles instead of Composables for use cases where custom styling is not required.

fun <X, Y> XYChart(    xAxisModel: AxisModel<X>,     yAxisModel: AxisModel<Y>,     modifier: Modifier = Modifier,     xAxisStyle: AxisStyle = rememberAxisStyle(),     xAxisLabels: @Composable (X) -> Unit,     xAxisTitle: @Composable () -> Unit = {},     yAxisStyle: AxisStyle = rememberAxisStyle(),     yAxisLabels: @Composable (Y) -> Unit,     yAxisTitle: @Composable () -> Unit = {},     horizontalMajorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.majorGridlineStyle,     horizontalMinorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.minorGridlineStyle,     verticalMajorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.majorGridlineStyle,     verticalMinorGridLineStyle: LineStyle? = KoalaPlotTheme.axis.minorGridlineStyle,     content: @Composable XYChartScope<X, Y>.() -> Unit)

Provides a set of X-Y axes and grid for displaying an X-Y plot.